Many human-computer interfaces today are programmed in standard sequential or object-oriented software. Another software paradigm exists, known generally as an agent-based software architecture. A given task is divided up into several sub-tasks and assigned to different “agents” in the system. Agents communicate concurrent modules, each of which handles a part of the decision-making process. “Intelligent agents” may be representative of software that mediates between a user and a software system and undertakes tasks that the software system cannot fulfill on its own. The use of such an intelligent agent as a mediator facilitates and simplifies one's task, thus increasing productivity. If the agents are capable of learning, they are referred to as adaptive agents. Some examples of situations in which agent-based interaction have been used follow.
Agents “manage” the customized presentation of information. They preprocess data and display it in a way that is unique for each user. Agents act as tutors or guides, supplementing knowledge of a user with their own. They assist in accomplishing a current task by providing alternative views and additional relevant information. Agents may be used for adaptive search and information retrieval.
One application of agents in user interaction is concentrating a bulk of interaction responsibilities in a single agent, thus emulating a centralized architecture. However, many real world scenarios are best modeled using a set of cooperating intelligent systems or “managers.” Society, for example, consists of many interacting entities, e.g., managers. To model some aspects of society, it is desirable to structure the model to interact among the desired entities. Further, since data often originates at different physical locations, centralized “management” solutions are often inapplicable or inconvenient. Thus, using a number of small simple adaptive agents (“middle managers”) instead of one large complicated one (“director”) simplifies the process of solving a complex problem. In summary, a cadre of agents collectively exhibit emergent behavior that as a whole is greater than the sum of its parts.
Embodiments of the present invention use interacting agents in a “virtual architecture” riding on top of a network to form semi-optimal decision trees for fast and reliable communication. In applications required to be fully operational at all times, such as applications used by security personnel, this is especially advantageous. A general application of select embodiments of the present invention substitutes agents of equivalent or greater control (or “management”) capacity for those agents in a network that have been, or appear to be, compromised.